活動圖類似於業務工作流程圖或簡單的流程圖,具有更豐富的語義。它描述了系統活動,或進行活動的人,以及這些活動的順序流程。活動圖是與面向對象方法相關的 UML 圖之一,通過它可以用於任何其他軟件開發範式
活動圖可用於描述如何協調活動以提供不同抽象級別的服務。活動圖的強大之處在於它們支持和鼓勵並行行為。這使它們成為工作流建模和多線程編程的絕佳工具。活動圖還可以通過使用對象名稱標記活動或使用泳道來定義到對象的鏈接,這使得活動圖能夠基於職責進行結構化。
在我們深入研究活動圖中單個符號的細節之前,讓我們快速瀏覽一下一個非常通用的活動圖。以下是用於詳細說明業務用例的示例活動圖 - 在機場辦理登機手續:
在 UML 中,最終的動作狀態是使用一個圍繞著一個小的實心圓(一個靶心)的圓來顯示的。一個活動圖可能只有一個初始動作狀態,但可能有任意數量的最終動作狀態。
UML 2.0 有一個額外的控制節點類型,稱為 Flow Final,它用作 Activity Final 節點的替代方法來終止流。它是必需的,因為在 UML 2.0 中,當控製到達 Activity Final 節點的任何實例時,整個活動(包括所有流)都會終止。Flow Final 只是終止它所連接的流。
注意:由於運行到完成語義,這在 UML 1.5 中不是問題,但是使用 UML 2.0 的不受限制的並行性,您可能不希望所有流停止並銷毀所有標記。
UML 活動圖上的活動(也稱為活動狀態)通常表示操作的調用、業務流程中的一個步驟或整個業務流程。
Action 是一個命名元素,它代表活動中的單個原子步驟,即在活動中沒有進一步分解。
給定一組動作狀態,這些動作狀態如何相互關聯?流轉換解決了這個問題,流轉換顯示了動作狀態是如何排序或排序的。有各種類型的流轉換,包括控制流和對象流轉換。
動作流或控制流也稱為路徑和邊。它們用於顯示從一種活動狀態到另一種活動狀態的轉換。一個活動狀態可以有多個傳入和傳出的動作流。我們使用帶箭頭的線來描述控制流。如果在進行轉換時有要遵守的約束,它會在箭頭上註明。
在 UML 中,控制流轉換顯示為從源動作狀態到目標動作狀態的實線。
在 UML 中,對象流轉換顯示為動作狀態和對象之間的虛線箭頭。使用對像作為輸入的操作狀態顯示為對象流轉換箭頭從對象指向操作狀態。更新或生成對像作為輸出的操作狀態顯示為對象流轉換箭頭從操作狀態指向對象。
當我們需要在決定控制流之前做出決定時,我們使用決策節點,例如一個傳入的轉換,以及多個傳出的並行轉換和/或對象流。
守衛是為了遍歷轉換必須為真的條件。
UML 2.0 活動建模還支持對象節點。對象節點是一個活動節點,它指示可能處於特定狀態的特定分類器的實例可能在活動的特定點可用(例如,作為動作的輸出或輸入)。對象節點充當特定類型(並且可能處於特定狀態)的對象可能流入和流出的容器。
數據存儲是持久存儲對象的對象的構造型。
泳道活動圖將活動分組到泳道列中,這些列包含適合該泳道所代表的類別的所有活動。泳道可以代表許多類別的信息,例如執行活動的參與者(即角色或部門)、活動發生的過程階段,或者文檔創建者認為應該由文檔作者強調和傳達的任何其他信息。泳道圖。由於圖表的水平行與游泳池內的泳道在視覺上相似,因此採用術語泳道。
在 UML 中,泳道顯示為通過兩側垂直實線與相鄰泳道分開的視覺區域,並在頂部標記為負責泳道內動作狀態的元素。
當時間表達式為真時,時間事件流動,而事件發生時事件信號流動。沙漏符號可用於表示接受時間事件。
接受事件操作是活動圖中業務流程的重要元素。接受動作等待事件發生。接受事件後,將執行來自此操作的流程。
發送信號動作是發送給接受活動的信號,該活動可以做出相應的反應。
活動圖用於對描述條件、約束、順序和並發活動的工作流進行建模。另一方面,用例的目的只是描述功能,即係統做什麼而不是如何完成。因此,簡單來說,活動圖顯示“如何”,而用例顯示特定係統的“內容”,因此,活動圖通常與用例成對出現。
就UML而言,我們可以將活動圖用於以下目的,例如:
注意:活動圖可用於說明業務流程(高級實現)到獨立算法(底層實現)。
此示例顯示了劇院辦公室的活動圖。此圖顯示了策劃演出所涉及的活動。
活動圖有助於理解系統的高級執行行為,而無需涉及協作圖所需的消息傳遞的內部細節。
以下示例描述了訂單處理的業務流活動。在下圖中,請求的訂單是活動的輸入參數。接受訂單並填寫所有必需信息後,接受付款並發貨。
活動圖還可用於描述業務中的角色和職責範圍——換句話說,誰負責在業務中做什麼。角色和職責範圍記錄為活動圖中的列(UML 泳道)。泳道顯示哪些業務人員參與了工作流的實現
此活動圖記錄了企業如何執行提案流程,具有三個職責範圍(客戶銷售界面、提案所有者和報價所有者)
更多類圖示例:
示例 1:文章提交流程
示例 2:多維泳道
UML 2.0 將這種分區功能擴展到活動圖的多個維度,並提供了額外的表示法,以便可以用它們所屬的分區的名稱來標記各個動作。
下圖顯示了根據 UML 2.0 出現的多維泳道示例,其中動作根據位置和職責進行分組。
通过研究不同应用程序的更多示例,您可以更详细地了解活动图。VisualParadigm Online是一个免费工具,允许您立即编辑和修改示例,无需事先注册。如果你喜欢它,你可以永远免费使用它!